package com.mdd.front.service.yangyangLeadingEnterprise;

import com.mdd.common.core.PageResult;
import com.mdd.common.entity.yangyangLeadingEnterprise.TAppEnterpriseSupplyDemand;
import com.mdd.common.entity.yangyangLeadingEnterprise.param.EnterpriseSupplyDemandParam;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.yangyangLeadingEnterprise.TAppEnterpriseSupplyDemandCreateValidate;
import com.mdd.front.validate.yangyangLeadingEnterprise.TAppEnterpriseSupplyDemandSearchValidate;
import com.mdd.front.validate.yangyangLeadingEnterprise.TAppEnterpriseSupplyDemandUpdateValidate;
import com.mdd.front.vo.yangyangLeadingEnterprise.TAppEnterpriseSupplyDemandDetailVo;
import com.mdd.front.vo.yangyangLeadingEnterprise.TAppEnterpriseSupplyDemandListedVo;

/**
 * 企业供需服务接口类
 * @author LikeAdmin
 */
public interface ITAppEnterpriseSupplyDemandService {

    /**
     * 企业供需列表
     *
     * @author LikeAdmin
     * @param pageValidate 分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<TAppEnterpriseSupplyDemandListedVo>
     */
    PageResult<TAppEnterpriseSupplyDemandListedVo> list(PageValidate pageValidate, TAppEnterpriseSupplyDemandSearchValidate searchValidate);

    /**
     * 企业供需详情
     *
     * @author LikeAdmin
     * @param id 主键ID
     * @return TAppEnterpriseSupplyDemandDetailVo
     */
    TAppEnterpriseSupplyDemandDetailVo detail(Integer id);

    /**
     * 企业供需新增
     *
     * @author LikeAdmin
     * @param createValidate 参数
     */
    void add(TAppEnterpriseSupplyDemandCreateValidate createValidate);

    /**
     * 企业供需编辑
     *
     * @author LikeAdmin
     * @param updateValidate 参数
     */
    void edit(TAppEnterpriseSupplyDemandUpdateValidate updateValidate);

    /**
     * 企业供需删除
     *
     * @author LikeAdmin
     * @param id 主键ID
     */
    void del(Integer id);

    /**
     * 查询用户指定企业下的我得供应/我得需求
     * @param param
     * @return
     */
    String selectEnterpriseSupplyDemandList(EnterpriseSupplyDemandParam param);

    /**
     * 根据企业供需id查询企业供需（用于分享链接跳转页面之后进行加载数据）
     * @param enterpriseSupplyDemandId
     * @return
     */
    String selectEnterpriseSupplyDemandById(Integer enterpriseSupplyDemandId);

    /**
     * 企业发布新的供需
     * @param appEnterpriseSupplyDemand
     * @return
     */
    String insertAppEnterpriseSupplyDemand(TAppEnterpriseSupplyDemand appEnterpriseSupplyDemand);
}
